1. 실행환경 세팅

환경별 구성 방법:

환경 구성 요소 비고
Docker Desktop Docker Desktop + Kubernetes 권장 (Windows/macOS)
Minikube Minikube + kubectl 독립 실행 환경
클라우드 GKE, EKS, AKS 운영 환경용
용어 정리

  • Kubernetes(쿠버네티스): 컨테이너화된 애플리케이션의 배포, 확장, 관리를 자동화하는 오픈소스 오케스트레이션 플랫폼. K8s라고도 표기
  • kubectl: Kubernetes 클러스터와 통신하기 위한 CLI(Command Line Interface) 도구
  • Minikube: 로컬 환경에서 단일 노드 Kubernetes 클러스터를 실행할 수 있게 해주는 도구
  • GKE(Google Kubernetes Engine): Google Cloud의 관리형 Kubernetes 서비스
  • EKS(Elastic Kubernetes Service): AWS의 관리형 Kubernetes 서비스
  • AKS(Azure Kubernetes Service): Microsoft Azure의 관리형 Kubernetes 서비스


사전 요구사항

필수 소프트웨어

Docker Desktop이 설치되어 있어야 함

참고: Docker 환경 설정이 되어 있지 않다면 먼저 도커/1. 실행환경 세팅.md 문서를 참고하여 Docker Desktop을 설치할 것

kubectl 설치 확인

PowerShell (Windows) / Terminal (macOS/Linux):

# kubectl 버전 확인
kubectl version --client

출력 예시:

Client Version: v1.29.2
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3

kubectl이 설치되어 있지 않은 경우:

Docker Desktop을 설치했다면 kubectl은 자동으로 함께 설치됨. 위 명령어가 작동하지 않으면 Docker Desktop 재설치 또는 별도 kubectl 설치 필요


Docker Desktop Kubernetes 활성화

1단계: Docker Desktop 설정 열기

Windows:

  1. 작업 표시줄에서 Docker Desktop 아이콘 우클릭
  2. "Settings" 또는 "Dashboard" 클릭 후 설정(톱니바퀴) 아이콘

macOS:

  1. 상단 메뉴 바에서 Docker 아이콘 클릭
  2. "Preferences..." 또는 "Settings" 선택

2단계: Kubernetes 기능 활성화

설정 화면:

Docker Desktop Settings
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

왼쪽 메뉴:
├─ General
├─ Resources
├─ Docker Engine
├─ Kubernetes        ← 여기 선택
├─ Software Updates
└─ ...

Kubernetes 탭:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

☑ Enable Kubernetes

Show system containers (advanced)
☐ ...

Kubernetes version: v1.29.2

[Apply & Restart]

활성화 단계:

  1. 왼쪽 메뉴에서 "Kubernetes" 클릭
  2. "Enable Kubernetes" 체크박스 선택
  3. 하단의 "Apply & Restart" 버튼 클릭
  4. Docker Desktop 재시작 대기 (1~2분 소요)

3단계: 활성화 진행 상황 확인

Docker Desktop 상태:

작업 표시줄/메뉴 바 아이콘 상태:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

[진행 중]
   Docker Desktop is starting...
   Kubernetes is starting...

[완료]
   Docker Desktop is running
   Kubernetes is running

마우스를 아이콘 위에 올리면 상태 확인 가능


4단계: 활성화 완료 확인

PowerShell / Terminal:

# 현재 kubectl 컨텍스트 확인
kubectl config current-context

출력:

docker-desktop

의미:


Kubernetes 클러스터 확인

클러스터 정보 확인

# 클러스터 정보 출력
kubectl cluster-info

출력 예시:

Kubernetes control plane is running at https://kubernetes.docker.internal:6443
CoreDNS is running at https://kubernetes.docker.internal:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

확인 사항:

용어 정리

  • Control Plane(컨트롤 플레인): Kubernetes 클러스터를 관리하는 핵심 컴포넌트 집합. API 서버, 스케줄러, 컨트롤러 매니저, etcd로 구성
  • API 서버(kube-apiserver): Kubernetes의 모든 요청을 처리하는 중앙 관문. kubectl 명령어가 이 서버와 통신
  • CoreDNS: 클러스터 내부에서 서비스 이름을 IP 주소로 변환하는 DNS 서버


노드 확인

# 클러스터 노드 목록
kubectl get nodes

출력 예시:

NAME             STATUS   ROLES           AGE   VERSION
docker-desktop   Ready    control-plane   5m    v1.29.2

필드 설명:

필드 설명
NAME 노드 이름 (docker-desktop)
STATUS 노드 상태 (Ready = 정상)
ROLES 노드 역할 (control-plane = 마스터 노드)
AGE 노드 실행 시간
VERSION Kubernetes 버전

특징:

용어 정리

  • 노드(Node): Kubernetes 클러스터를 구성하는 개별 서버(물리 또는 가상 머신). 컨테이너가 실제로 실행되는 곳
  • 마스터 노드(Master Node): Control Plane이 실행되는 노드. 클러스터 전체를 관리
  • 워커 노드(Worker Node): 실제 애플리케이션 컨테이너가 실행되는 노드
  • 클러스터(Cluster): 여러 노드가 모여 하나의 시스템처럼 작동하는 구성


시스템 Pod 확인

# kube-system 네임스페이스의 Pod 확인
kubectl get pods -n kube-system

출력 예시:

NAME                                     READY   STATUS    RESTARTS   AGE
coredns-5dd5756b68-xxxxx                 1/1     Running   0          5m
coredns-5dd5756b68-yyyyy                 1/1     Running   0          5m
etcd-docker-desktop                      1/1     Running   0          5m
kube-apiserver-docker-desktop            1/1     Running   0          5m
kube-controller-manager-docker-desktop   1/1     Running   0          5m
kube-proxy-xxxxx                         1/1     Running   0          5m
kube-scheduler-docker-desktop            1/1     Running   0          5m
storage-provisioner                      1/1     Running   0          5m
vpnkit-controller                        1/1     Running   0          5m

주요 컴포넌트:

Pod 이름 역할
coredns 클러스터 내부 DNS 서비스
etcd 클러스터 데이터 저장소
kube-apiserver Kubernetes API 서버
kube-controller-manager 컨트롤러 관리
kube-scheduler Pod 스케줄링
kube-proxy 네트워크 프록시
storage-provisioner 스토리지 프로비저닝
용어 정리

  • Pod(파드): Kubernetes에서 배포 가능한 가장 작은 단위. 하나 이상의 컨테이너를 포함
  • etcd: 클러스터의 모든 상태 정보를 저장하는 분산 키-값 저장소. 고가용성과 일관성 보장
  • kube-scheduler: 새로 생성된 Pod를 적절한 노드에 배치하는 컴포넌트
  • kube-controller-manager: 노드, 복제, 서비스 등 다양한 컨트롤러를 실행하는 컴포넌트
  • kube-proxy: 각 노드에서 네트워크 규칙을 관리하고 서비스로의 트래픽을 전달
  • 프로비저닝(Provisioning): 필요한 자원(스토리지, 네트워크 등)을 자동으로 생성하고 할당하는 과정

정상 상태: 모든 Pod의 STATUS가 Running이어야 함


Linux 환경 세팅

사전 요구사항

Docker Engine이 설치되어 있어야 함

참고: Docker 환경 설정이 되어 있지 않다면 먼저 도커/1. 실행환경 세팅.md 문서의 Linux 섹션을 참고하여 Docker Engine을 설치할 것


1단계: kubectl 설치

# 최신 kubectl 다운로드
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"

# 실행 권한 부여
chmod +x kubectl

# 시스템 경로로 이동
sudo mv kubectl /usr/local/bin/

# 설치 확인
kubectl version --client

출력 예시:

Client Version: v1.29.2
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3

2단계: Minikube 설치

# Minikube 바이너리 다운로드
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64

# 실행 권한 부여
chmod +x minikube-linux-amd64

# 시스템 경로로 이동
sudo mv minikube-linux-amd64 /usr/local/bin/minikube

# 설치 확인
minikube version

출력 예시:

minikube version: v1.32.0
commit: 8220a6eb95f0a4d75f7f2d7b14cef975f050512d

3단계: Minikube 클러스터 시작

# Minikube 클러스터 시작 (Docker 드라이버 사용)
minikube start --driver=docker

# 또는 VM 기반 (KVM 사용)
# minikube start --driver=kvm2

출력 예시:

minikube v1.32.0 on Ubuntu 22.04
Using the docker driver based on user configuration
Starting control plane node minikube in cluster minikube
Pulling base image ...
Creating docker container (CPUs=2, Memory=2200MB) ...
Preparing Kubernetes v1.29.0 on Docker 24.0.7 ...
    - Generating certificates and keys ...
    - Booting up control plane ...
    - Configuring RBAC rules ...
Configuring bridge CNI (Container Networking Interface) ...
Verifying Kubernetes components...
    - Using image gcr.io/k8s-minikube/storage-provisioner:v5
Enabled addons: storage-provisioner, default-storageclass
Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default

소요 시간: 첫 실행 시 약 1~2분


4단계: 클러스터 확인

# 현재 컨텍스트 확인
kubectl config current-context

출력:

minikube
# 노드 확인
kubectl get nodes

출력 예시:

NAME       STATUS   ROLES           AGE   VERSION
minikube   Ready    control-plane   2m    v1.29.0
# 시스템 Pod 확인
kubectl get pods -n kube-system

출력 예시:

NAME                               READY   STATUS    RESTARTS   AGE
coredns-5dd5756b68-xxxxx           1/1     Running   0          2m
etcd-minikube                      1/1     Running   0          2m
kube-apiserver-minikube            1/1     Running   0          2m
kube-controller-manager-minikube   1/1     Running   0          2m
kube-proxy-xxxxx                   1/1     Running   0          2m
kube-scheduler-minikube            1/1     Running   0          2m
storage-provisioner                1/1     Running   0          2m

5단계: Minikube 기본 명령어

# Minikube 상태 확인
minikube status

# Minikube 중지
minikube stop

# Minikube 재시작
minikube start

# Minikube 삭제
minikube delete

# Minikube 대시보드 실행 (웹 UI)
minikube dashboard

Docker Desktop vs Minikube 차이점

항목 Docker Desktop Kubernetes Minikube
설치 Docker Desktop에 내장 별도 설치 필요
시작 시간 10~30초 1~2분
컨텍스트 이름 docker-desktop minikube
멀티 노드 지원 안 함 (단일 노드) 지원 (--nodes 옵션)
드라이버 WSL2/Hyper-V (Windows), HyperKit (macOS) Docker, KVM, VirtualBox 등
대시보드 없음 내장 (minikube dashboard)
용어 정리

  • WSL2(Windows Subsystem for Linux 2): Windows에서 Linux 환경을 실행할 수 있는 호환성 계층. Docker Desktop이 내부적으로 사용
  • Hyper-V: Microsoft의 하드웨어 가상화 기술. Windows에서 가상 머신 실행에 사용
  • KVM(Kernel-based Virtual Machine): Linux 커널에 내장된 가상화 기술
  • 드라이버(Driver): Minikube가 클러스터를 실행하는 데 사용하는 가상화 또는 컨테이너 백엔드


kubectl 기본 사용법

주요 명령어 구조

kubectl [명령어] [리소스타입] [리소스이름] [옵션]

명령어 카테고리:

카테고리 명령어 설명
조회 get 리소스 목록 조회
describe 리소스 상세 정보
logs Pod 로그 조회
생성/수정 apply 매니페스트 파일 적용
create 리소스 생성
edit 리소스 편집
삭제 delete 리소스 삭제
실행 run Pod 실행 (명령형)
exec Pod 내부 명령 실행
용어 정리

  • 매니페스트(Manifest): Kubernetes 리소스를 정의하는 YAML 또는 JSON 파일. 선언형 배포에 사용
  • 명령형(Imperative): kubectl run, kubectl create처럼 직접 명령을 내리는 방식
  • 선언형(Declarative): YAML 파일에 원하는 상태를 정의하고 kubectl apply로 적용하는 방식


리소스 타입 및 축약형

# 전체 이름 사용
kubectl get pods
kubectl get services
kubectl get deployments

# 축약형 사용 (동일한 결과)
kubectl get po
kubectl get svc
kubectl get deploy

주요 리소스 타입:

리소스 타입 축약형 설명
pods po 컨테이너 실행 단위
services svc 네트워크 서비스
deployments deploy Pod 배포 관리
replicasets rs Pod 복제본 관리
namespaces ns 논리적 격리 공간
nodes no 클러스터 노드
configmaps cm 설정 데이터
secrets - 민감 데이터
용어 정리

  • Deployment(디플로이먼트): Pod의 생성, 업데이트, 롤백을 관리하는 상위 리소스. 복제본 수 유지와 무중단 배포 지원
  • ReplicaSet(레플리카셋): 지정된 수의 Pod 복제본이 항상 실행되도록 관리. Deployment가 내부적으로 사용
  • Service(서비스): Pod 집합에 대한 안정적인 네트워크 엔드포인트 제공. 로드 밸런싱과 서비스 디스커버리 담당
  • ConfigMap(컨피그맵): 설정 데이터를 키-값 쌍으로 저장하는 리소스. 컨테이너에 환경 변수나 파일로 주입
  • Secret(시크릿): 비밀번호, 토큰 등 민감한 데이터를 저장하는 리소스. Base64 인코딩됨


네임스페이스 사용

# 특정 네임스페이스의 리소스 조회
kubectl get pods -n kube-system

# 모든 네임스페이스의 리소스 조회
kubectl get pods --all-namespaces

# 축약형
kubectl get pods -A

기본 네임스페이스:

네임스페이스 용도
default 기본 작업 공간
kube-system 시스템 컴포넌트
kube-public 공개 리소스
kube-node-lease 노드 하트비트
용어 정리

  • 네임스페이스(Namespace): Kubernetes 클러스터 내에서 리소스를 논리적으로 분리하는 가상 클러스터. 팀별, 환경별(dev/prod) 격리에 사용
  • 하트비트(Heartbeat): 노드가 정상 작동 중임을 알리기 위해 주기적으로 보내는 신호


첫 번째 테스트

nginx Pod 실행

# nginx Pod 생성 (명령형)
kubectl run nginx-test --image=nginx:latest

출력:

pod/nginx-test created

Pod 상태 확인

# Pod 목록 조회
kubectl get pods

출력 예시:

NAME         READY   STATUS    RESTARTS   AGE
nginx-test   1/1     Running   0          10s

STATUS 단계:

상태 의미
Pending 스케줄링 대기 중
ContainerCreating 컨테이너 생성 중
Running 정상 실행 중
Completed 실행 완료 (Job)
Error 오류 발생
CrashLoopBackOff 반복 재시작 실패
용어 정리

  • 스케줄링(Scheduling): Pod를 실행할 적절한 노드를 선택하는 과정. kube-scheduler가 담당
  • CrashLoopBackOff: 컨테이너가 시작 후 바로 종료되어 계속 재시작을 시도하는 상태. 설정 오류나 애플리케이션 버그가 원인


Pod 상세 정보 확인

# Pod 상세 정보
kubectl describe pod nginx-test

출력 예시 (일부):

Name:             nginx-test
Namespace:        default
Priority:         0
Service Account:  default
Node:             docker-desktop/192.168.65.3
Start Time:       Thu, 09 Jan 2026 10:00:00 +0900
Labels:           run=nginx-test
Status:           Running
IP:               10.1.0.10
...
Events:
  Type    Reason     Age   From               Message
  ----    ------     ----  ----               -------
  Normal  Scheduled  20s   default-scheduler  Successfully assigned default/nginx-test to docker-desktop
  Normal  Pulling    19s   kubelet            Pulling image "nginx:latest"
  Normal  Pulled     15s   kubelet            Successfully pulled image "nginx:latest"
  Normal  Created    15s   kubelet            Created container nginx-test
  Normal  Started    15s   kubelet            Started container nginx-test

Pod 로그 확인

# Pod 로그 출력
kubectl logs nginx-test

출력 예시:

/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
...
2026/01/09 01:00:00 [notice] 1#1: nginx/1.25.3

Pod 내부 접속

# Pod 내부 쉘 접속
kubectl exec -it nginx-test -- /bin/bash

컨테이너 내부에서 명령 실행:

# nginx 프로세스 확인
ps aux | grep nginx

# nginx 설정 파일 확인
cat /etc/nginx/nginx.conf

# 컨테이너 종료
exit

Pod 삭제

# Pod 삭제
kubectl delete pod nginx-test

출력:

pod "nginx-test" deleted

확인:

# Pod 목록 확인
kubectl get pods

출력:

No resources found in default namespace.

실습 디렉터리 생성

Windows (PowerShell)

# 실습 디렉터리 생성 (원하는 경로 사용)
# 예시: C 드라이브 또는 개인 문서 폴더
New-Item -ItemType Directory -Path C:\kubernetes_practice -Force
cd C:\kubernetes_practice

# 또는 개인 문서 폴더 사용
# New-Item -ItemType Directory -Path $env:USERPROFILE\Documents\kubernetes_practice -Force
# cd $env:USERPROFILE\Documents\kubernetes_practice

# 하위 디렉터리 생성
mkdir yaml
mkdir apps

# 디렉터리 구조 확인
tree /F

예상 출력:

C:\KUBERNETES_PRACTICE
├─apps
└─yaml

macOS / Linux (Bash)

# 실습 디렉터리 생성 (홈 디렉터리 권장)
mkdir -p ~/kubernetes_practice/{yaml,apps}
cd ~/kubernetes_practice

# 디렉터리 구조 확인
tree

예상 출력:

kubernetes_practice/
├── apps
└── yaml

참고: 자신의 환경에 맞는 디렉터리 경로 사용. Docker 실습 디렉터리와 같은 상위 폴더에 생성하는 것을 권장


컨텍스트 관리

컨텍스트 개념

컨텍스트(Context):

용어 정리

  • 컨텍스트(Context): 클러스터, 사용자 인증 정보, 기본 네임스페이스의 조합. 여러 클러스터를 관리할 때 전환에 사용
  • kubeconfig: kubectl의 설정 파일. 클러스터 접속 정보, 인증서, 컨텍스트 등을 저장


컨텍스트 확인

# 현재 컨텍스트 확인
kubectl config current-context

출력:

docker-desktop

컨텍스트 목록 조회

# 모든 컨텍스트 보기
kubectl config get-contexts

출력 예시:

CURRENT   NAME             CLUSTER          AUTHINFO         NAMESPACE
*         docker-desktop   docker-desktop   docker-desktop

필드 설명:

필드 설명
CURRENT 현재 활성화된 컨텍스트 (* 표시)
NAME 컨텍스트 이름
CLUSTER 연결할 클러스터
AUTHINFO 인증 정보
NAMESPACE 기본 네임스페이스

컨텍스트 전환 (여러 클러스터 사용 시)

# 다른 컨텍스트로 전환 (예: minikube)
kubectl config use-context minikube

# docker-desktop으로 다시 전환
kubectl config use-context docker-desktop

kubeconfig 파일 확인

# Windows PowerShell
cat $env:USERPROFILE\.kube\config
# macOS / Linux
cat ~/.kube/config

파일 구조 (YAML 형식):

apiVersion: v1
kind: Config
clusters:
  - cluster:
      server: https://kubernetes.docker.internal:6443
      certificate-authority-data: [인증서 데이터]
    name: docker-desktop
contexts:
  - context:
      cluster: docker-desktop
      user: docker-desktop
    name: docker-desktop
current-context: docker-desktop
users:
  - name: docker-desktop
    user:
      client-certificate-data: [인증서 데이터]
      client-key-data: [키 데이터]

실습 준비 완료 확인

체크리스트

다음 명령어가 모두 정상 작동하면 실습 준비 완료:

# 1. kubectl 버전 확인
kubectl version --client

# 2. 클러스터 연결 확인
kubectl cluster-info

# 3. 노드 확인
kubectl get nodes

# 4. 시스템 Pod 확인
kubectl get pods -n kube-system

# 5. 테스트 Pod 생성 및 삭제
kubectl run test --image=nginx
kubectl get pods
kubectl delete pod test

모든 명령어가 성공하면 실습 환경 설정 완료


참고 자료

공식 문서:

커뮤니티:

모든 명령어가 성공하면 실습 환경 설정 완료


kubectl 생산성 향상 설정

kubectl 단축어 설정 (alias)

kubectl을 k로 단축하여 사용 가능

Windows (PowerShell)

PowerShell 프로필 파일 편집:

# 프로필 파일 존재 여부 확인
Test-Path $PROFILE

# 프로필 파일이 없으면 생성
if (!(Test-Path $PROFILE)) {
    New-Item -ItemType File -Path $PROFILE -Force
}

# 메모장으로 프로필 파일 열기
notepad $PROFILE

프로필 파일에 다음 내용 추가:

# kubectl 단축어
Set-Alias -Name k -Value kubectl

저장 후 PowerShell 재시작 또는 프로필 다시 로드:

# 프로필 다시 로드
. $PROFILE

테스트:

# 이제 k만 입력해도 kubectl과 동일하게 작동
k get nodes
k get pods
k version --client

macOS / Linux (Bash)

~/.bashrc 파일 편집:

# bashrc 파일 열기
nano ~/.bashrc

# 또는 vim 사용
# vim ~/.bashrc

파일 맨 아래에 다음 내용 추가:

# kubectl 단축어
alias k='kubectl'

저장 후 변경사항 적용:

# bashrc 다시 로드
source ~/.bashrc

테스트:

k get nodes
k get pods

macOS / Linux (Zsh)

macOS는 기본 셸이 Zsh이므로 ~/.zshrc 사용:

# zshrc 파일 열기
nano ~/.zshrc

파일 맨 아래에 다음 내용 추가:

# kubectl 단축어
alias k='kubectl'

저장 후 변경사항 적용:

# zshrc 다시 로드
source ~/.zshrc

kubectl 자동완성 설정

명령어를 일부만 입력하고 Tab 키를 눌러 자동완성 가능

예: k des + Tab → k describe

Windows (PowerShell)

# PowerShell 프로필 파일 열기
notepad $PROFILE

다음 내용 추가:

# kubectl 자동완성
kubectl completion powershell | Out-String | Invoke-Expression

# k 단축어에도 자동완성 적용
Register-ArgumentCompleter -CommandName k -ScriptBlock $__kubectlCompleterBlock

저장 후 PowerShell 재시작 또는:

. $PROFILE

테스트:

# 'des' 입력 후 Tab 키 → 'describe'로 자동완성
k des<Tab>

# 'get po' 입력 후 Tab 키 → 'get pods'로 자동완성
k get po<Tab>

macOS / Linux (Bash)

# bashrc 파일 열기
nano ~/.bashrc

다음 내용 추가:

# kubectl 자동완성
source <(kubectl completion bash)

# k 단축어에도 자동완성 적용
complete -o default -F __start_kubectl k

저장 후:

source ~/.bashrc

테스트:

# 'des' 입력 후 Tab 키
k des<Tab>  # describe로 자동완성

# 리소스 이름도 자동완성
k get pods my-<Tab>  # 실제 Pod 이름으로 자동완성

macOS / Linux (Zsh)

# zshrc 파일 열기
nano ~/.zshrc

다음 내용 추가:

# kubectl 자동완성
source <(kubectl completion zsh)

# k 단축어에도 자동완성 적용
compdef k=kubectl

저장 후:

source ~/.zshrc

자동완성 사용 예시

설정 완료 후 다음과 같이 사용 가능:

# 명령어 자동완성
k get<Tab>           # get 다음에 사용 가능한 리소스 목록 표시
k des<Tab>           # describe로 자동완성
k del<Tab>           # delete로 자동완성

# 리소스 타입 자동완성
k get po<Tab>        # pods로 자동완성
k get de<Tab>        # deployments로 자동완성
k get sv<Tab>        # services로 자동완성

# 리소스 이름 자동완성
k describe pod nginx-<Tab>   # 실제 존재하는 Pod 이름으로 자동완성
k delete pod my-app-<Tab>    # 실제 존재하는 Pod 이름으로 자동완성

# 네임스페이스 자동완성
k get pods -n kube-<Tab>     # kube-system으로 자동완성

CKA/CKAD 시험 환경과 동일하게 설정

CKA/CKAD 시험에서 제공되는 기본 설정:

# ~/.bashrc 또는 ~/.zshrc에 추가
alias k='kubectl'
source <(kubectl completion bash)  # 또는 zsh
complete -o default -F __start_kubectl k

이 설정은 Kubernetes 공식 인증 시험에서 기본으로 제공되므로, 로컬 환경에서도 동일하게 구성하면 시험 준비에 도움됨.


설정 확인

단축어 확인:

# Windows PowerShell
Get-Alias k

# macOS / Linux
alias | grep kubectl

출력 예시:

CommandType     Name                      Version    Source
-----------     ----                      -------    ------
Alias           k -> kubectl

자동완성 테스트:

# 명령어 일부만 입력 후 Tab 키
k get po<Tab>
k des<Tab>
k dele<Tab>

정상적으로 자동완성되면 설정 완료.